//
//  BasePost.h
//  bukaClass
//
//  Created by unisedu on 16/4/22.
//  Copyright © 2016年 曹飞. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

//#import "Reachability.h"



@interface BKBasePost : NSObject

+(BOOL)hasNetWork;

/**
 *  发送GET请求最底层的方法
 *
 *  @param urlString     请求路径
 *  @param callbackBlock 请求结果回调
 */
+ (void)GETWithUrlString:(NSString *)urlString callbackBlock:(void(^)(id  responseObject,NSError *error))callbackBlock;


/**
 封装singlePostWithParameters：参数自动加入Device And Token

 @param Parameters 不需要传 Device And Token
 @param suburl 接口名
 @param block 回调 resultJson json字符串
 */
+ (void)postWithParametersHasDeviceAndToken:(NSDictionary *)Parameters
                          subUrl:(NSString *)suburl
                           block:(void (^)(NSString *resultJson, NSError *error))block;
/**
 *  统一所有请求出口
 *
 *  @param Parameters 字典参数
 *  @param suburl      接口名
 *  @param block      回调 resultJson json字符串
 */
+ (void)singlePostWithParameters:(NSDictionary *)Parameters
                          subUrl:(NSString *)suburl
                           block:(void (^)(NSString *resultJson, NSError *error))block;
/**
 *  原始请求
 *
 *  @param Parameters 字典参数
 *  @param suburl     接口名
 *  @param block      回调 resultJson json字符串
 */
+ (void)postWithParameters:(id)Parameters
                    subUrl:(NSString *)suburl
                     block:(void (^)(NSString *resultJson, NSError *error))block;

//log专用
+ (void)logPostWithParameters:(id)Parameters
                    subUrl:(NSString *)suburl
                     block:(void (^)(NSString *resultJson, NSError *error))block;

/**
 *  上传头像
 *
 *  @param image 单张UIImage图片
 *  @param block 回调 resultJson json字符串
 */
+(void)uploadHeadImage:(UIImage *)image
                 block:(void (^)(NSDictionary *resultDic, NSError *error))block;
/**
 *  上传房间图片
 *
 *  @param image 单张UIImage图片
 *  @param block 回调 resultJson json字符串
 */
+(void)uploadCerImage:(UIImage *)image
                block:(void (^)(NSDictionary *resultDic, NSError *error))block;

/**
 *  上传多图
 *
 *  @param images UIImage图片数组
 *  @param block  回调 resultJson json字符串
 */
+(void)uploadSomeImage:(NSArray *)images
                 block:(void (^)(NSDictionary *resultDic, NSError *error))block;

/**
 *  上传文件
 *
 *  @param Parameters 字典参数
 *  @param suburl     接口名
 *  @param imageDatas 图片 data 数组
 *  @param names      图片名
 *  @param video      视频data
 *  @param file       文件data
 *  @param block      回调 resultJson json字符串
 */
+ (void)postWithParameters:(NSDictionary *)Parameters
                    subUrl:(NSString *)suburl
                imageDatas:(NSArray *)imageDatas
                     names:(NSArray *)names
                     video:(NSData *)video
                      file:(NSURL *)file
                     block:(void (^)(id resultDic, NSError *error))block;



/**
 *  上传文件
 *
 *  @param Parameters 字典参数
 *  @param baseurl    基础地址
 *  @param suburl     接口名
 *  @param imageDatas 图片 data 数组
 *  @param names      图片名
 *  @param video      视频data
 *  @param file       文件data
 *  @param block      回调 resultJson json字符串
 */
//+ (void)postWithParameters:(NSDictionary *)Parameters
//                    subUrl:(NSString *)suburl
//                imageDatas:(NSArray *)imageDatas
//                     names:(NSArray *)names
//                     video:(NSData *)video
//                      file:(NSURL *)file
//                     block:(void (^)(NSDictionary *resultDic, NSError *error))block;




/**
 表单发送图片

 @param Parameters 参数
 @param suburl url
 @param imageData 数据
 @param block block
 @param uploadProgressBlock 上传进度
 */
+ (void)postWithParameters:(NSDictionary *)Parameters
                    subUrl:(NSString *)suburl
                 imageData:(NSData*)imageData
                     block:(void (^)(NSDictionary *resultDic, NSError *error))block
                  progress:(void (^)(NSProgress * uploadProgress))uploadProgressBlock;
/**
 上传文件

 @param Parameters post字典参数
 @param baseurl 基础地址
 @param suburl 接口名
 @param name 文件名
 @param fileData 文件data
 @param block 回调
 */
+ (void)sessionPostParameters:(NSDictionary *)Parameters
                      baseUrl:(NSString *)baseurl
                       subUrl:(NSString *)suburl
                         name:(NSString *)name
                         file:(NSData *)fileData
                        block:(void (^)(id result, NSError *error))block;

@end
